package cn.edu.scau.cmi.ema.dao;

import java.util.Set;

import org.springframework.dao.DataAccessException;
import cn.edu.scau.cmi.ema.domain.*;
import cn.edu.scau.cmi.ema.domain.base.CmiPagination;

public interface AdditiveDAO extends JpaDao<Additive> {

	public Additive findAdditiveById(Integer id) throws DataAccessException;

	public Additive findAdditiveById(Integer id, int startResult, int maxRows) throws DataAccessException;

	public Set<Additive> findAdditiveByName(String name) throws DataAccessException;

	public Set<Additive> findAdditiveByName(String name, int startResult, int maxRows) throws DataAccessException;

	public Set<Additive> findAdditiveByNameContaining(String name_1) throws DataAccessException;

	public Set<Additive> findAdditiveByNameContaining(String name_1, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Additive> findAdditiveByDescription(String description) throws DataAccessException;

	public Set<Additive> findAdditiveByDescription(String description, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Additive> findAdditiveByDescriptionContaining(String description_1) throws DataAccessException;

	public Set<Additive> findAdditiveByDescriptionContaining(String description_1, int startResult, int maxRows)
			throws DataAccessException;

	public Additive findAdditiveByPrimaryKey(Integer id) throws DataAccessException;

	public Additive findAdditiveByPrimaryKey(Integer id, int startResult, int maxRows) throws DataAccessException;

	public Set<Additive> findAdditivesByIds(Set<Integer> ids) throws DataAccessException;

	public Set<Additive> findAllAdditives() throws DataAccessException;

	public Set<Additive> findAllAdditives(int startResult, int maxRows) throws DataAccessException;

	public Set<Additive> findAdditiveByCompositeProperities(String sql, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Additive> findAdditivesByDetachedCriteria(CmiPagination page) throws DataAccessException;

	public Additive findAdditiveByPhysicalPrimaryKey(String name) throws DataAccessException;

	public Additive findAdditiveByPhysicalPrimaryKey(String name, int startResult, int maxRows)
			throws DataAccessException;
}
